package d7_thread_communicate;

public class Test {
    //不管对面醒没醒,都要按照流程来,唤醒它
    //一定是先唤醒别人,在等待自己(例子:不可以把自己搞晕了,在去叫别人)
    //只有桌子才知道谁占用了它,只有桌子才知道,谁是因为占用它才停止的
    //桌子是一个通信的信号(这是官方的规定,不这样操作,就会崩)

    //有可能,吃包子的那个,会唤醒另外一个消费者,消费者判断是没有了包子(就是共享资源)
    //这时候,可能又唤醒了吃包子的另外一个,可能这两个一直在交替,
    //现在我们没有学习,批量等待的技术,无法进行批量等待
    //生产者还是有机会抢到锁的
    public static void main(String[] args) {
        //目标: 线程通信
        //1、竞争一张桌子
        Desk desk = new Desk();

        //2、创建消费者线程-->然后直接进行启动
        new ConsumerThread("小懒猪", desk).start();
        new ConsumerThread("姬紫月", desk).start();

        //3、创建生产者线程
        new MakeThread("叶凡", desk).start();
        new MakeThread("陈平安", desk).start();
        new MakeThread("秦牧", desk).start();
    }
}
